Many business organizations and governmental entities may rely on large data centers, including hundreds or thousands of individual computer hosts or servers, to provide support for complex mission-critical applications. The collection of computer hosts within a data center may be heterogeneous in nature, including many different types of hosts from many different manufacturers, supporting different operating systems and a variety of hardware devices such as disks, network cards, and the like from different hardware vendors. In addition to the application servers at the data centers, an information technology (IT) department may also need to support a large number of workstations (such as desktop and/or laptop computer systems) and supporting servers (such as email servers, web servers) for use by the employees of the organization.
As the computing needs of an organization grow, more and more processing power may need to be deployed. The process of allocating additional resources such as new computer hosts, additional storage, additional networking bandwidth, and other devices in response to growing needs within an organization may be termed “provisioning.” Configuring individual new hosts manually would be increasingly difficult, expensive and error-prone as the environment scales in size and complexity. Therefore, in some IT organizations, specialized provisioning tools may be used to ensure a desired degree of consistency when configuring newly allocated hosts. A provisioning tool may, for example, allow an administrator to install a desired version of an operating system and a desired set of application software on a source computer host, and to create a disk image (i.e., a copy) of the system disk of the source computer host for use in installing newly provisioned hosts.
The disk image may then be written to a system disk at each newly provisioned host, so that all newly provisioned hosts are deployed with a common operating system version and common application software. Such a provisioning technique of using a disk image to install software at a host, instead of installing a newly provisioned host manually from installation CDs or other removable media, may be termed image-based provisioning. Image-based provisioning may provide several advantages over more traditional provisioning or installation techniques, including a reduction in total installation time, better support for automation and a corresponding reduction in the probability of human errors. In many cases a standard set of disk images for image-based provisioning may be created, (e.g., a set including one disk image corresponding to each operating system in use within a data center) and employed repeatedly as new hosts are provisioned.
One problem with image-based provisioning is that the imaging may only capture what was contained on the source computer. If an administrator wants to add a program to a host target of a disk image, the administrator may need to deploy the image and then install the program after the image has been deployed to the host. This manual process may be time-consuming for system administrators. In other words, traditional disk imaging systems may be inefficient because they may lack post-imaging customization tools.